package com.employment.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 聊天消息DTO
 * 
 * @author employment
 * @since 2024-01-01
 */
@Data
public class ChatMessageDTO {
    
    /**
     * 消息ID
     */
    private Long messageId;
    
    /**
     * 会话ID
     */
    private Long conversationId;
    
    /**
     * 发送者ID
     */
    private Long senderId;
    
    /**
     * 发送者信息
     */
    private UserSimpleDTO sender;
    
    /**
     * 消息类型：1文字，2图片，3语音，4视频，5文件，6位置，7系统消息
     */
    private Integer messageType;
    
    /**
     * 消息内容
     */
    private String content;
    
    /**
     * 文件URL
     */
    private String fileUrl;
    
    /**
     * 文件名称
     */
    private String fileName;
    
    /**
     * 文件大小（字节）
     */
    private Long fileSize;
    
    /**
     * 位置信息（JSON格式）
     */
    private String locationInfo;
    
    /**
     * 是否已读
     */
    private Boolean isRead;
    
    /**
     * 是否撤回
     */
    private Boolean isRecalled;
    
    /**
     * 撤回时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime recallTime;
    
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
}